package com.telit.firecommand.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.telit.firecommand.dto.ThermalImagingInfoDTO;
import com.telit.firecommand.dto.VisibleLightInfoDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * comm_camera_info
 *
 * @author
 */
@ApiModel(value = "com.telit.entity.CommCameraInfo监控信息表")
@Data
public class CommCameraInfo implements Serializable {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 监控名称
     */
    @ApiModelProperty(value = "监控名称")
    @ExcelProperty("监控点名称")
    private String name;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    @ExcelProperty("经度")
    private String longitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    @ExcelProperty("纬度")
    private String latitude;

    /**
     * 视频流code
     */
    @ApiModelProperty(value = "视频流code")
    @ExcelProperty("视频流")
    private String cameraIndexCode;

    /**
     * ip
     */
    @ApiModelProperty(value = "ip")
    @ExcelProperty("ip")
    private String ip;

    /**
     * token
     */
    @ApiModelProperty(value = "token")
    @ExcelProperty("token")
    private String token;

    /**
     * 高低点位 0低点位 1高点位
     */
    @ApiModelProperty(value = "高低点位 0低点位 1高点位")
    @ExcelProperty("高低点位")
    private Integer highLowPoint;

    /**
     * 省代码
     */
    @ApiModelProperty(value = "省代码")
    private String province;

    /**
     * 市代码
     */
    @ApiModelProperty(value = "市代码")
    private String city;

    /**
     * 县代码
     */
    @ApiModelProperty(value = "县代码")
    private String county;

    /**
     * 乡代码
     */
    @ApiModelProperty(value = "乡代码")
    private String countryside;

    /**
     * 村代码
     */
    @ApiModelProperty(value = "村代码")
    private String country;

    /**
     * 行政区划代码
     */
    @ApiModelProperty(value = "行政区划代码")
    @ExcelProperty("行政区划")
    private String districtCode;

    /**
     * 行政区划地址
     */
    @ApiModelProperty(value = "行政区划地址")
    @ExcelProperty("行政区划地址")
    private String districtName;

    /**
     * 管理单位
     */
    @ApiModelProperty(value = "管理单位")
    @ExcelProperty("管理单位")
    private String managementUnit;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 监控类型1防火监控2防盗监控3卡口监控
     */
    @ApiModelProperty(value = "监控类型1防火监控2防盗监控3卡口监控")
    @ExcelProperty("设备类型")
    private String monitoringType;

    /**
     * 监控半径
     */
    @ApiModelProperty(value = "监控半径")
    @ExcelProperty("监控半径")
    private String monitoringRadius;

    /**
     * 供电方式1.市电2.发电机3.太阳能4.风能
     */
    @ApiModelProperty(value = "供电方式1.市电2.发电机3.太阳能4.风能")
    @ExcelProperty("供电方式")
    private String powerSupplyMode;

    /**
     * 设备厂商
     */
    @ApiModelProperty(value = "设备厂商")
    @ExcelProperty("设备厂商")
    private String equipmentManufacturer;

    /**
     * 管理人
     */
    @ApiModelProperty(value = "管理人")
    @ExcelProperty("管理人")
    private String personInCharge;

    /**
     * 管理人-联系电话
     */
    @ApiModelProperty(value = "管理人-联系电话")
    @ExcelProperty("联系电话")
    private String inChargeTelephoneNumber;

    /**
     * 主要参数
     */
    @ApiModelProperty(value = "主要参数")
    private String mainParameter;

    /**
     * 使用状态1可用2需维修3报废
     */
    @ApiModelProperty(value = "使用状态1可用2需维修3报废")
    private String useStatus;

    /**
     * 说明文件
     */
    @ApiModelProperty(value = "说明文件")
    private String documentation;

    /**
     * 设备状态 0离线 1在线
     */
    @ApiModelProperty(value = "设备状态 0离线 1在线")
    @ExcelProperty("在线状态")
    private String deviceStatus;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createPerson;

    /**
     * 设备所在地址
     */
    @ApiModelProperty(value = "设备所在地址")
    @ExcelProperty("详细地址")
    private String address;

    /**
     * 端口
     */
    @ApiModelProperty(value = "端口")
    @ExcelProperty("端口")
    private String port;

    /**
     * 塔高
     */
    @ApiModelProperty(value = "塔高")
    @ExcelProperty("塔高")
    private String towerHigh;

    /**
     * 是否支持云台控制 0不支持 1支持
     */
    @ApiModelProperty(value = "是否支持云台控制 0不支持 1支持")
    @ExcelProperty("是否支持云台控制")
    private Integer enableController;

    /**
     * 设备型号
     */
    @ApiModelProperty(value = "设备型号")
    @ExcelProperty("设备型号")
    private String deviceModel;

    /**
     * 画面类型 0可见光 1热成像
     */
    @ApiModelProperty(value = "画面类型 0可见光 1热成像")
    @ExcelProperty("画面类型")
    private Integer pictureType;

    /**
     * 是否在巡航 0否 1是
     */
    @ApiModelProperty(value = "是否在巡航 0否 1是")
    private Integer isCruise;


    /**
     * 设备类型 0云台 1球机 2枪机
     */
    @ApiModelProperty(value = "设备类型 0云台 1球机 2枪机")
    private String deviceType;

    /**
     * 海拔
     */
    @ApiModelProperty(value = "海拔")
    private String altitude;

    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    private String contacts;

    /**
     * 联系人-电话
     */
    @ApiModelProperty(value = "联系人-电话")
    private String contactsTelephoneNumber;


    //---------------扩展字段-------------------
    @ApiModelProperty(value = "文件url")
    @TableField(exist = false)
    private List<String> fileUrl;

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "可见光信息")
    @TableField(exist = false)
    private VisibleLightInfoDTO visibleLightInfoDTO;

    @ApiModelProperty(value = "热成像信息")
    @TableField(exist = false)
    private ThermalImagingInfoDTO thermalImagingInfoDTO;

}